"""
该模块提供了用于从CNKI网站抓取参考文献信息的功能。

主要功能包括：
- 初始化WebDriver和文件处理对象
- 启动爬虫以抓取单篇文献下的的参考文献数据

类：
    ReferencesScrapy: 用于处理参考文献信息的爬取

函数：
    无

异常：
    无

示例用法：
    ref_scrapy = ReferencesScrapy()
    ref_scrapy.crawl_cnki_info_single("search_query")
"""

import logging
from web_driver_handler import WebDriverHandler


class ReferencesScrapy:
    """抓取CNKI上的参考文献信息。"""

    def __init__(self, filehandler):
        self.webdriver_handler = WebDriverHandler()
        self.file_handler = filehandler
        logging.basicConfig(level=logging.INFO)

    def crawl_cnki_info_single(self, search_query):
        """启动单篇文献的参考文献数据爬取

        该方法初始化ScrapyHandler对象，并调用其start_scraping方法开始爬取指定搜索查询的参考文献信息。

        参数：
            search_query (str): 专业检索式。

        返回值：
            bool: 如果爬取过程成功则返回True，否则返回False。

        异常处理：
            无
        """
        from scrapy_handler import ScrapyHandler

        scrapy_handler = ScrapyHandler(self.webdriver_handler, self.file_handler)

        scrapy_handler.start_scraping(search_query)
        return True
